I think it's getting to the point where Schine might seriously need to consider upping the bit count per block. Probably from 3 bytes to 4, to make room for all the Block IDs needed. If you pumped it up to 4 bytes, devoting all the extra bits to Block IDs, you could get half-a-million additional block IDs. Almost-nearly-half-enough. You could move the orientation blocks over to Block ID count, giving additional multipliers to the Block ID count, forcing the different orientations into their own block IDs. Since some blocks don't need 24 orientations, and we don't even use 7 or 8 "other" orientations possible with the current orientation bit count, it would be better to spend those bits on Block IDs, and put each orientation in its own block ID.
Current Block ID bits: 12? (2048 IDs possible). Current Orientation bits: 6 (32 orientations possible). Orientation-enhanced Block IDs with the additional byte: 24 (3 full bytes) (well over 8 million block IDs!)
10 levels hull/armor/crystal armor x 10 colors each x 30 shapes x an average of 20 orientations = 60,000 armor Block IDs (multiply by 4 to accommodate future additions, in addition to the growth we currently expect = ~240k Armor Block IDs)
Plus: 40 system/effect blocks x 30 shapes x an average of 20 orientations = 24,000 system Block IDs (again multiply by 4 to accommodate future additions = ~100k System Block IDs)
Plus: 50 weapon/support blocks x 30 shapes x an average of 16 orientations = 24,000 weapon Block IDs
Plus: 500 decoration/ore/crystal blocks x 30 shapes x an average of 16 orientations = 240,000 decoration Block IDs.
(Probably multiply by 4 to allow future additions and changes = ~1 M Decoration Block IDs)
Left over Block IDs: 7 M! (enough for future growth and multiple massive custom and decoration mods)
22 Block ID bits would yield a total of 2 M block IDs, probably enough for everything in the vanilla game. 23 Block ID bits would yield 4 M block IDs, probably enough for absolutely everything, including multiple simultaneous decoration mods.