My understanding on how to handle multiple VM files is that each file gets translated independently and appended to the asm file. The order of execution is then determined after calling Sys.Init (which would start a calling-chain).
Am I correct about this? Is there a different way to go about handling directories?
That's correct, but your program won't work properly without the bootstrap code -- after all, that's how Sys.Init() gets called.
Some of the test programs will work without the bootstrap code because the test scripts do the necessary legwork to set things up as if the bootstrap code had executed. This is merely a temporary convenience to let you develop the VM translator in chunks.