Displacement in the shader mixer issues

I'm attempting to do procedural displacement, and running into a complex bit.
So the noise brick outputs a color map. If that gets piped into displacement, I get displacement, but of limited height. Setting maximum displacement height seems to help, but only to some maximum value (which isn't very high).
I'm wondering if I need to either add/multiply the float part of the displacement input (which is color,float) (and I have no idea how to only multiply that second component),
or if I need to do something weird with the other displacement elements (displacement max?)
Anyone have ideas?
What I have now is... tolerable at making bumpiness, but I'd like to do more.
Comments
Remember that Iray displacement needs dense mesh or high subD to show up as more than vague lumpiness.
Edit: I'm talking about when you test your shader. If it is on a low poly sphere or something, you might not see much.
Displacement takes a 0 to 1 value from the map, the strength and min/max limits determine what that translates to. If you are using colour noise it is probably averaging the red, green and blue values to get the final value which will tend to clump around .5 with few extreme values, so you rarely see the full range used.
Do you remember how to transform the color noise to greyscale? It's ben too long since I did much in ShaderMixer, I can't remember...
I'm thinking Will would prefer that for the displacement, but for other parts of his network, wants/needs the color noise for other things.
In 3delight you could split the colour into its channels and just use one of them, but I don't think Iray supports that (I have had only the briefest of looks at Iray in Shader Mixer).
Neither have I...but I think the math/operation bricks are common for both...
Will, one thing that might want to try...inserting a 'scale' factor...a simple multiply with an integer value. The scale would be user setable...
I'm not sure how to multiply just one part of, say, color/float
You insert the multiply brick right before the displacement input...and feed whatever you would be feeding the displacement to the multiply brick then the output of the multiply to displacement.
The Displacement brick has inputs:
Strength (Displacement map + Map weight)
Min, Max
(standard texture/tiling stuff)
It then outputs Displacement (which is basically a grayscale map, near as I can figure) and Displacement Max.
That Displacement max... is pure sorcery. It doesn't want to connect to anything. I can, apparently, connect stuff into the Displacement Max input in the MDL Surface, which is great... but I need to be able to take the regular displacement max so I can pass it through as one option of several.
Ok, I'm dumb. Just multiplying and ignoring max mostly works.
(If you set displacement to some dummy image and give it a max over 20, it seems to turn everything 'on' and then it can be driven from the map)
I see...
It's 'compressing' it too much. You need a wider 'spread'...either the map or the Disp Max to have a 'range'...and there is no place to drop in a multiply.
Well...
Here's an early test.
There's an oddity in that the displacement seems to have a direction rather than radiating out equally. Which is good and bad, I suppose...