Hello evantol,
Basically the answer is no - You do not have to create all vlans on each switch particpating in the MST domain.
I would say it is all about the VLAN-to-MSTI mapping.
By default all the vlan (from 1 to 4094) are associated to instance 0 (named also IST).
Even if vlan 3000 (for ex.) is not created on the switch, it is mapped to instance 0 by default.
To change this "instanciation" the command is => Switch(config-mst)# instance instance_id vlan vlan_range
So even if some vlans are not the same through different switches, one of the points that needs to match on all MST switches (region) is that VLAN-to-MSTI mapping.
(show spanning-tree mst configuration to verify)
===================================
Otherwise, in order to check that all the MST configuration is matching between bridges, I like to use the command show spanning-tree mst configuration digest which indicates the md5 digest calculated the name/config_revision/VLAN-to-MSTImapping.
This value should be the same between different switches to be considered as part of the same MST region.
If you need other information on how the MST acts on a trunk connecting two switches (based on the allowed vlans - each vlan being associated to its instance) please let us know !
Best regards.
Karim