Assigning all remaining CPUs to other zones is not possible.
I don't know any value needed for the global zone. The more zones you have, the more cpu's should be available for the global zone.
Some months ago, I heared of 2% CPU per zone for the host. But imagine a sparc t4-2 with 128 Threads. You want to run 20 Zones: 128 * 0,02 * 20 = ~51. With that calculation you would need 51 Threads for your global zone to manage 20 non-global zones. That seems ridiculous.
My experience says: your host should have at least 3 vcpus per 10 zones. Less is possible, bould you will 'feel' the difference. More is even better (like 4 or 5 per 10 zones)