Hi c0burn, been playing with your tool and it looks really promising. Few things I've noticed from a quick look at the source and a play with it:
If you run a merge where model1 is small and model2 is large, the second model doesn't merge in all that well. See for example
modelmerge.exe g_plasma.mdl player_capnbubs.mdl
I think that your code to translate the model2's coordinates into model1's space misbehaves. Possibly only in the case when the second model is larger than the first, not sure about other cases. In generally I think there aren't any "really good" ways to tackle this problem, only "less bad" ones.
Is there a reason why you chose to extend the skins horizontally rather than vertically? I'm sure it would be a lot easier to cope with front/back splits when stacking vertically - if the skins are the same width it's practical free regardless of the model's UVmapping type. I have a feeling I know why QMe chose to do it that way, and I'm wondering if that's your concern too.
Have you considered an "overlay skins" option for the tool? The case I'm imagining is where you might want to clone an object but have the same skinmap for both copies. For example, making a multi-strand
vine model with four copies of the geometry but one skin, by inputting the same model twice on the command line.
I have some ultra nasty UV tricks up my sleeve that probably thwart most attempts to merge models, but I'll spare you those. For now.