Dang, that's too bad. I took a look at the file, and it seems like the issue may be with the unpacking rather than the packing? For me, my tool crashes when trying to extract that file (maybe you can PM me your latest?). As a result, it extracts 8 files, but the last one (7) looks incorrect.
And I think it has to do with the "naming" of the GARC (whatever this means). In the "unpacking" code
there's a comment about how the part that reads the otaf entries "names" is "wrong anyway". And then the rest of the code makes the assumption that the first file has the value 10000000, the second file 2000000, third 30000000, and so on. But in the file you mentioned, the 8th file, which would normally be 7000000 is instead D000000. To me, this seems to imply that the extracted files from the GARC should be (1, 2, 3, 4, 5, 6, C). I also noticed that
the btaf section size changes, and is offset by apparently the sum of the "filename values". So I think that that these are more than "names" and actually play some role in calculating offsets for things.
Anyway... maybe I'm totally off base here, or this part is obvious, and I'm not really certain on much of my terminology... but I'm going to keep trying different things to try to get it to unpack and repack correctly.