Believe it or not, this is actually how specularity and reflection SHOULD be handled. Many other renderers allow you to break the fundamental concept of conservation of energy.
The weight is simply a multiplier of the texture. Therefore full white (1.0) * 0.25 = 0.25. Grey (0.5) * 0.25 = 0.125.
Also, it looks like you haven't gamma corrected your textures.
Imagination is more important than knowledge.