Okay, I think to understand this you need to throw anything you know about the internal representation of floating-point numbers overboard, because it doesn't matter here. OpenMPT doesn't do any bit hacking tricks to convert integers to floats, so exponents and mantissas and whatever amount of bits they have are completely irrelevant to this discussions. All that is relevant here is that floating-point numbers can represent numbers between 0 and 1.

With that said:

1. By convention, a range of [-1,+1] is used in the world of floating-point audio to designate unclipped audio, that is, 0dB is the maximum volume. If you exceed this range, you get volumes above 0dB. This range can be exceeded temporarily (e.g. while it is being processed in, say, a VST plugin), but at *some* point, the audio data has to be converted from digital to analog (by using a DAC) and this DAC will only output a signal that is no louder than 0dB, so if not done before, the signal will being clipped here.

2. In the integer audio world there is no such nominal range because different applications have different needs with regards to headroom and precision. OpenMPT's choice of 4-bit headroom (i.e. possible volume above 0dB) is completely arbitrary in this sense. The headroom of a floating-point implementation on the other hand would be virtually unlimited (it is limited by the largest number that can be expressed with your floating-point type).

3. 2^4=16, hence the signal can exceed 0dB by a factor of 16 during processing (it can be 16 times louder than nominal 0dB, or 24dB -- 4 bits * 6dB/bit = 24dB). Translating this to the floating-point world means that the possible range in float is [-16,+16].

4. Conversion from integer to floating point is simply done by dividing so that the nominal 0dB of the integer range are equal to the +1/-1 float range. In OpenMPT's case, this means that dividing the integers from the mixer by 2^27 (4 bits of headroom + 1 sign bit + 27 precision bits). Any sample value outside of [-2^27,+2^27] in the integer range will yield a floating-point number outside of [-1,+1], i.e. volume above 0dB. As the maximum range of a 32-bit integer is [-2^31,+2^31-1], which is 16 times more than the [-2^27,+2^27] range, the floating-point output of OpenMPT cannot exceed the range [-16,+16].

5. Due to the aforementioned Windows mixer effects, anything outside of [-1,+1] is clipped to that range, even if it is not necessary from a technical point of view.

Maybe that clears it up?