Okay, I'm looking at .njm files to see if I can manage to pop a header onto the extracted plymotion.pr2 files to convert them with Noesis.
Not sure how stupidly obvious this is, but a few notes I made.
First 4 bytes of the file is always NMDM.
Second 4 bytes of the file seems to be a pointer to the end of the file.
P0F0 marks the end of the chuck (cyan box) and is always at an offset of 4 bytes.
The pointer from the second byte always points to P0FO -8 bytes.
Any data after P0F0 can all be deleted and the animation will run perfectly fine.
Not sure if P0F0 - 4 (green) is anything special. If it's a pointer it seems to pop into the middle of the file.
(Maybe the point to return to for repeat animations?)
Returning to the top
Third 4 bytes is always 0C000000
Fourth four bytes is the number of frames in hexadecimal. (1E = 30 frames, 14 = 20 frames, ect)
On the next row, the first 4 bytes seems to always be 03000200
And the second 4 bytes seem to always be 0C040000
And after that, second row with an offset of 8 bytes seems to be where the data for each file starts.
Edit: Okay it looks like the footer (and P0F0) don't matter at all. The second four bytes are a pointer to the end of the animation. Any data beyond that point can be replaced with 00's and the animation will still run. If the file is shorter than the pointer indicated in the second four bytes of the file, the animation will crash.