Of course you could code the R, G and B channel in the three alpha-channels of textures 1,2 and 3 - but this would require you to have all textures the same size. The same with the additional normal map. You could then code e.g. the blendmap of the new texture/normalmap in the blue channel and put the lightmap in the alpha-channel.

So, this way you could have a multitexture shader for four textures, but this requires you also to encode 4 RGB textures into 3 RGBA textures and 4 XYZ normal maps into 3 RGBA textures storing the normals. You could write a small application for that or do it by hand.

Do you need 4 textures or do you need more?

If you need exactly 4, I could consider modifying the shader to fit this requirement easily.

Best regards,
-Christian