Hmm hacking the Tony Hawk's titles are you (they were one of the games many of us learned on/initially pulled apart).
I know you seem to have it sorted but I feel like waffling a bit.
The starting of things at given points is usually referred to as either alignment or boundaries
"The values in this game use 16 bit boundaries"
"The games requires these values to be byte, word, double word/dword, quad word aligned" (do also note some now older/rare machines use different meanings for word)
Some might also use more programming related terms like short and long but that can get odd and varies between programming language and architecture so if all else just stick with bits or bytes. Also note there is no great issue for a game to shift things in memory- I am sure we have all seen pointer tables magically line up when you delete a few bytes from the header of the file.
Back on topic
NDS9 Memory Map
00000000h Instruction TCM (32KB) (not moveable) (mirror-able to 1000000h)
0xxxx000h Data TCM (16KB) (moveable)
02000000h Main Memory (4MB)
03000000h Shared WRAM (0KB, 16KB, or 32KB can be allocated to ARM9)
04000000h ARM9-I/O Ports
05000000h Standard Palettes (2KB) (Engine A BG/OBJ, Engine B BG/OBJ)
.....
More
http://nocash.emubase.de/gbatek.htm#dsmemorymaps
That gives you the 02 thing.
Two things at this point-
The pointing at the end of the file and doing work there. It works on occasion but you have to remember that things might be used there and might either get overwritten by something else or overwrite something else. The games compiler or if the authors are kicking it to assembly level then chances are the authors at some level are managing the memory usage and although you can change it the work required tends to prevent it from happening. To this end it is probably better to find a blank space in the memory and use that (although that can be tricky too when dealing with games that have overlays that are not used early on in the game).
Do also consider that the text might be fixed length or parsed (new line on 00 or something) and just have a basic pointer to the start of the value and maybe a length value.
Although we call the ARM9 the code for the ARM9 they can and do often include a lot of other stuff (this hack being a prime example) rangings from thing that directly interact with the ARM code but are not opcodes or payloads to entire "files" (I was pulling text, fonts, images and more out of a ARM9 file the other day).
Do also note that not all binaries have to start at the start of the 02 section (although most do) and the ARM9 memory address is contained within the header- just about every program that can deal with the DS file system will be able to tell you this although I tend to keep ndsts around for this-
http://www.no-intro.org/tools.htm The maths is but a minor difference at this point (if the starting offset is 02004000 you just add 4000 to the number (accounting for any endianess issues).