Ok, so I hope you guys won't mind me bringing this back from the dead.
I needed a distraction from my lack of progress on FF9 so I had a look at this. Didn't get much from the sample files at first so I dumped the whole game's contents using a program called dsbuff, to get a broader idea of how the thing's structured. Turned out to be pretty interesting for a whole lot of reasons since by looking at the directory names you can get clues as to what you're searching for ( for example your 3E sample file is from the mission NPCs directory, so since there's "ven" in the model name and it uses Roxas' bones I can already guess it's Ventus' character model), but one of the most interesting things is that there are debug models in the ms (monsters) directory which, though they don't contain the bone info you're interested in, are simple and clearly identified and thus seem like a good starting point.
It looks like the chunks are using pleasantly readable IDs, like MDL0 for model data, TEX0 for texture, JNT0 for bones. The bones, material and model names are in there too.
What puzzled me at first was that at times the strings are cut by an unrelated character, including those that serve to identify chunks, but then I realized some LZS-like compression's at work, and those interruptions are control bytes. Also seems the compressed files always have "KAPH" as an ID, but that's already in the compressed part (so it's at offset 0x05, after one integer for data length and the first control byte) so it may just be a parent chunk that's often used.
I've also found a file, shadow.nsbmd, which turned out to be a noncompressed version of a model chunk (probably the flat round shadow you get below characters)
The beginning seems to be:
0x00 byte4 chunk_type, "BMD0"
0x04 byte4 unknown
0x08 uint chunk_length //chunk_type included
0x0C ushort subchunk_list_pointer //from the beginning of the chunk
0x0E ushort subchunk_count
and then for the shadow file, the list, containing one subchunk
0x10 offset to MDL0 chunk
the subchunk starts as
0x14 byte4 chunk_type "MDL0"
0x18 uint chunk_length //chunk_type included
Aaaaand that's all for now. I don't have much more info to offer yet, since I'm pretty new at reverse-engineering file formats, and for FF9 I was mostly following the wiki. It's all rather interesting, mind you. For now I need to refresh my rather rusty compression knowledge, so I can have more samples to look at. Still, it's a start, and since the names seem to be self-explanatory it shouldn't be too hard to decipher.
This link has the compressed cube and sphere debug meshes, and the noncompressed shadow.nsbmd, if anyone wishes to add his two cents while I'm working on a decompressor.
http://www.megaupload.com/?d=BLTZAJ6X