Yes, you start by following the function chains. Find a weapon texture, go to the function that references it, then go to the function that references that function, this second function is usually (sometimes there is a third in the chain) the one that gets referenced in the giant function, sub_41C271 in SFC2:OP. For SFC3 I made a list of these functions, the weapon they belong to, and where in the giant function they're referenced. Now look at the giant function in pseudocode mode (F5) and you should see a list of "if some variable has some value then call a function", the variable is the number of the weapon. You can change which weapon calls which function chain. You can usually get around the hardcoded colors by editing the texture image in the assets/textures folder, sure the hardcoded color gets mixed in but you can compensate for that most of the time, otherwise just use the function chain of another weapon that has a hardcoded color that you can work with (for example if you want to turn a blue phaser into an orange phaser I don't think there's any color you can paint the texture that would mix with the hardcoded blue to produce orange, but if you use the function chain of a white phaser you can mix that with an orange painted texture).
Note: some weapons will be grouped together in the giant function (though I think this is much less common in the SFC2 games than in SFC3), to separate them you have to rewrite the giant function, which is very hard.