"max," "start," and "end" can be > 1.0. Volume seems to get capped to 1.0 in the end, but you can still do stuff like max=2, start=0.5 to get there.
There's an edge case where "start" will have an effect in the "volume_envelope" block, even if "bEnableVolumeEnvelope" is 0.
When the volume envelope is enabled, "start" and "end" get scaled by "max." When the pitch envelope is enabled, "start" and "end" will be used as-is; "max" is only used when the pitch envelope is disabled.
Basically the envelope blocks are full of quirks, so pay close attention to the details.