- Make each line start with "Skin XXXX YYYY" or "Sprite XXXX YYYY", with "XXXX" being the skin- or sprite-name, and "Skin" only applying to player skins and "Sprite" only applying to non-player object sprites, and with "YYYY" being the model's filename or such.
- Allow models containing just the above with no other information per line, but allow the two following things to optionally also be specified (on the same line, in any order):
- A "Scale" option, defaulting to 1.0, to determine how big the model should be in-game. (This is what the third option in the current "md2.dat"(?) file does.)
- An "Interpolate" option, defaulting to whatever the below console variable prefers, but allow this "Interpolate" option to be set to "Never", "Prefer Not", "Prefer", or "Always" (not with those names, they're not good in this context). It'd default to something unspecifiable between "Prefer Not" and "Prefer" (which should be used by simply not setting "Interpolate").
- Change the model-enabling console variable to just be on/off (instead of on (interpolated)/off/"old" (non-interpolated)), and then add a new console variable for model interpolation. It should have values for "forced off", "prefer off", "default off", "default on", "prefer on", and "forced on" (again, maybe not with those names). "Forced on/off" would fully override the "Interpolate" setting above. "Prefer on/off" would override the "Prefer Not" and "Prefer" settings, but not the "Never" or "Always" settings. "Default on/off" would be used if there's no "Interpolate" setting in the model definition. This console variable should default to the "default on" option.
So, in other words, make it mandatory to specify whether a model definition is for a skin or a sprite, just for more "consistency" (and for avoiding potential trouble with 4-letter skins with the same name as a sprite), make the "scale" option optional, get rid of the old "offset" option, add a new "interpolate" option, and make a new interpolation console variable. The priority order for whether or not a model should be interpolated would be as follows, from most priority to least priority:
- The console variable, set to "forced off" or "forced on".
- The model definition, set to "never" or "always".
- The console variable, set to "prefer off" or "prefer on".
- The model definition, set to "prefer off" or "prefer on".
- The console variable, set to "default off" or "default on".
The above could be useful in some situations, for example to allow model interpolation for player characters while not using interpolation for other things where it'd look bad (e.g. vanilla Brak Eggman, due to its instant movement tied to Brak's animation frame timing).
Another thing to consider might be to separate the model definitions into separate files. For example, you might have "Sonic.md3", "Sonic.png", "Sonic_blend.png", and "Sonic.txt", with the TXT file being the model definition. (You would then get rid of the model filename part of the definition, but still keep "Skin XXXX" / "Sprite XXXX".)
One more thing to consider would be an "Offset" option for each model definition, followed by 3 numbers (which'd default to 0.0, 0.0, and 0.0), to visually offset the model within SRB2, but I'd say that making people have to centre their model correctly in the first place in modelling/animating programs would be a "better" option than that.