Well, the how-to is easy.
First thing to know, is that bfxm can have many meshes inside, not just one, with LOD and animation.
.obj can only handle one component. It can have multiple meshes, but not LODs.
So, when you convert a bfxm into obj, you might get multiple of the same (those are the LODs).
Converting from bfxm to obj is simple:
mesher blabla.bfxm blabla.obj boc
Converting from obj to bfxm is equally simple:
mesher blabla.obj blabla.bfxm obc
The third parameter is the command: first letter is "from" format, second letter is "to" format, and third letter is "action" (which can be "c" - create, or "a" - add).
mesher --help will print out a lot of stuff, mainly used for more advanced editing.
The real trick, goes in how to handle the .mtl file prior to making the bfxm. Because blender's output is quite useless.
I think the best you can do here, is read the .mtl generated by mesher, and you'll get a good idea of how it works. In essence, map_<something> specifies a kind of texture. map_kd being diffuse, map_ke glow, map_normal obviously the normal map, etc... (don't remember them all)
And of course, the other real trick is making LODs. You cannot do that with obj, you need xmesh. For lods, convert each LOD to xmesh individually like:
mesher lod1.obj lod1.xmesh oxc
mesher lod2.obj lod2.xmesh oxc
mesher lod3.obj lod3.xmesh oxc
Then, you'll have to edit lod1.xmesh and add the references to the other lods. I don't really remember the details, but there's some examples somewhere (I think wiki?)
Then, you build the bfxm.
mesher lod1.xmesh something.bfxm xbc
Mesher will automatically add the lods from the other .xmesh.
If the .obj have multiple meshes, there will be multiple .xmesh, it gets more complicated, because mesher automatically names them 0_0, 0_1, etc... so beware not to step on existing files (rename them prior to converting the next).
And now my first sentence is ridiculous. Simple my ass. Yeah, we really need some python script to make all this easier
Of coursem, take all this with a grain of salt, I'm doing this from memory (I don't really know if everything is accurate).