What's with the categories? They don't seem to be used in either of the primary .m files (cmd+f "mtl"), so they aren't really needed. Do one thing well.
If you want to make a higher order function library, that's fine, but I don't see what it has to do with mapping data to JSON, and I don't think that users of the library should have to get a bunch of modifications to the standard container classes to get the nice model class. Why not split it into two libraries?