I'm still working on documenting the whole model file format ( the most of it is the HAL DAT format but some top level structures that are specific for and the animation data are undocumented) but since I already know enough to write the model texture extractor/inserter you wanted I did just that.
Extractor : Link
Inserter: Link
They work pretty much the same as the ones for move textures, with the change that you need to specify the offset of the main data ( not the start of the data) so 0xE80 for normal model files, not 0xE60 ( you need to enter them in decimal, so 0xE80 would be 3712) .
Also the list of files you are about to process is always reset when you drop files into the window, so you have to drag all the files you want to process at once.
There are some files that (for some reason I don't know yet) have a GPT1 section ( the one I was talking about in the move files) before the model data, for now you'll just have to put the Offset to the actual model data, I'll probably put out a fix once I know what to do with that.
(My guess is that these are particles that are present on the model since I found this in Articuno's file, which probably has some kind of ice particles on it. Do you know whether it does?)
You have the option between merging or throwing out one of the currently most similar colors until the palette fits in the case that a palette is too big, the merging process might produce weird colors you don't want in the textures, but this is just a kind of last resort since converting textures with the .bat usually already decreases the palette by quite a bit and gives you enough freedom for modifications. Most textures don't use palettes anyway. I'll probably fix the merging thing when I have the time.
The Program should work with Maps, Battle models and Overworld models.
If there are any Problems/Errors with this, please tell me about them and I'll try to help.
*EDIT: made the programs more user friendly