The MTR scanner took WAY longer than I had hoped. The big problem, as I explained yesterday, was the complete lack of any kind of magic number or other identifying mark. I ended up testing for non-ASCII bytes and that the second line was an opening bracket. After that, I'm leaving it up to my reader to only load the material if the expected parameters are there.
I also decided not to support root path from the scanner because its just not worth screwing with my virtual path heirarchy for a non-standardized format like MTR.
I'm planning to do an MD5ANIM animation loader or an MD5MESH skeleton loader before I hit the sack.