I think that this is a good idea and you should do it (for spec maps too - maybe just in a way that works for arbitrary “texture ending x goes in x material parameter”), but I also think that the best way to do Source engine ones would be actually look in the .VMTs and build the material instance from that info - it’s all kinda there, and I can make a master material that does everything the Source mats do and has a good set of parameters to automate.
We said this already between ourselves, I’m mostly just reiterating for the audience now
I guess either materials shared between Source games are the exception to this rule, or I just still have an old “source materials.gcf” for whatever reason.