Maybe a vagrant box will be less work for users. At the moment the
Vagrantfile is just pointing to a remote url, but in the future it
should contain the actual scripts to construct the box so that the box
can be updated as the dependencies in the repository change.
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.