I am not really skilled in material, but for me, or you create all your materials before and set material when you need, which will make a lot of materials but no “loop” cost, or you prepare a generic function to set the values of your parameters when needed which will save a lot of space but will cost ressources.
But, does this really costs ressources to loop when you need? if your loops are on mouse move, you will have even for 10 materials, 3 or 4 parameters to set ? For 2 enemies ? the one no more hovered and the one hovered, as this is not a tick, for me it does not sounds too much, but as i said i am not skilled in material… Only thing would be to compare fps with or without this effect, to know…