finally, i think this is the most detail i can give you. i'll be happy to take this offline if you think i can be of any more help...
if you look at lowraminit() in memory.c, the second part of the function calculates x and pa then does a memset(0, pa-x). the values it obtains for x and pa are: x=4231168d; pa=4194304d thus it tries to do a memset of -36864d compared with a normal, booting kernel, the value of pa is identical, but x is higher, which is understandable since the kernel is larger, and x == end... what are the implications after the kernel has grown beyond pa is left as an exercise to plan9's kernel developers :) of course i may have overlooked something earlier, but as far as i can verify, 9load is honest in how it lays the kernel down.