This firmly ties spawn constant definition to data allocation,
preventing usage earlier in main.asm or in other objects.
A potential solution is to abuse ifdefs and include it in
both main.asm and constants.asm.
This should make map headers much easier to edit than before.
Rather than occasionally being able to reuse blockdata semantically,
create a label for each map and attach it to some blockdata include.
This improves readability and reduces overhead when adding new maps.
The macro argument length bug doesn't seem to crop up here...
It looks like it only happens when an argument is over 16 characters
long and references a symbol that exists before the macro is invoked.
SUBSTATUS_ROLLOUT was actually SUBSTATUS_RAMPAGE.
SUBSTATUS_ENCORED was actually SUBSTATUS_ROLLOUT.
Substatus 5 bit 4 was actually SUBSTATUS_ENCORED.
Also use some more (sub)status constants where needed.
Besides making predefs convenient, naming a predef no longer requires
adding or renaming a predef constant. This also lets predefs be rearranged at will.