While I can not speak from real world experience, even labbing it up would require 20 switches, I did find this(below) which infers your 20 number is correct
Configuring the Maximum-Hop Count
Beginning in privileged EXEC mode, follow these steps to configure the maximum-hop count for all MST instances:Command
Enter global configuration mode.
spanning-tree mst max-hops hop-count
Specify the number of hops in a region before the BPDU is discarded, and the information held for a port is aged.
For hop-count, the range is 1 to 40; the default is 20.
Return to privileged EXEC mode.
show spanning-tree mst
Verify your entries.
copy running-config startup-config
(Optional) Save your entries in the configuration file.
Is not that you can't have more than 20 switches on your domain. Think about the RIP logic, can you have more that 16 routers on a RIP domain? Sure you can, but depends of the topology. The case of MSTP is that have a default of 20 hops, but you can configure it until 40 hops away from the root.
What's the logic behind the hop count? The hop count is going decreasing in a hop by hop basis (20 is the default value) until the zero/null value is reached, after this happens the information is aged out, so the switch will declare itself as the root for the STP domain which in MSTP terminologies will declared the root for the IST or the root for the instance 0.
But is the max_age still used? Yes, is used for backward compatibilty with older STP versions (i.e, 802.1D/MST, PVST, PVST+, rapid-PVST+).
Post any doubts,