IIUC, the problem isn't that much with bloom itself, it's more about the specular response. I remember there are lines that makes specularity stronger than usual, reducing effective texture intensity range to something like 0-192 instead of 0-255. (If you turn postprocessing off and use specular map with values above RGB 192, the specular hotspot will get overblown, while it shouldn't.) Also I believe there's either some fresnel term there as well, or a code that increases specular intensity at grazing angles. IMO all of that should be removed first, before we fiddle with bloom.
Also, when it comes to bloom, maybe we could have better controls over it? Right now, we can control bloom only by going over RGB 1 in emissive textures (10 seems like a good starter value). But that makes the whole surface glow like a neon lamp:
While in engines like UE3/UDK you can set up bloom to be stronger without loosing surface details that much, something more like this (top right example):
There are some cvars related to bloom, so maybe we just have to play with them more:
seta r_bloom_blursteps "2"
seta r_bloom_downsample_limit "128"
seta r_bloom_weight "0.3"
seta r_bloom_detailblend "0.5"
seta r_bloom_threshold_falloff "8"
seta r_bloom_threshold "0.7"
seta r_bloom "1"
Edit: the UDK docs mention something like bloom kernel size, that's what we're probably missing in our cvars.
https://docs.unrealengine.com/udk/Three/Bloom.html