Thanks for the info
Yes, I am working with Blender. I am not exactly "importing". I am writing an API to create blender files. So when it's ready, it should be quite easy to add an "export to .blend" function, in 3D viewers programs like Noesis, WowModelViewer, or 3D object converter for example.
I'm at the very begining, so now I can only create a blend file with meshes (from a list of vertex coords, and a list of faces).
Moreover, it's a long time I want to try "3D model reversing". So I decided to kill two birds with one stone, and decrypt Firefall 3D models to test my API. Maybe I was too greedy

I think I will give up Firefall for now, and test with WoW models. The format is well documented, and I already worked on WowModelViewer a few years ago, so it should be easier for me.
Just for information (maybe it can be useful to someone) :
- About Firefall bones : I didn't understand why they store 2 matrix 4x4 for each bone. Well, I still don't understand, but I found that the second matrix is the first one inverted ! Matrix inverse is a quite fast operation, so why not doing it at runtime ? Why storing both a matrix and its inverted ?
- About Blender bones : I converted a Firefall model (with bones) as blend file. Of course, bones were upside down (except heads on the correct position). I manually corrected a few bones position, and "explored" the resulting blend file. The matrix 4x4 in the blend file has many common values with the Matrix 4x4 of the Firefall file. Only 4 values seems to come from nowhere. This could be the rotation part of the matrix, and so, this could confirm your theory about the change of direction when connecting bones in Blender.
EDIT : A question suddenly comes to my mind : If games usually use node based bones, then only 3 coordinates are needed, to place the bone. So ... why a matrix 4x4 ?