@Xpand
It took me nearly 2 hours to figure out that the vector had to be normalized 
Yet I'm not entirely sure,
Is it correct that components in 'reference area' should represent 'top', 'front' and 'side' ?
And that your formula should use 'right', 'up' and 'forward' like below ?
Code:
referenceArea = Vector3.Scale(referenceArea,
new Vector3(
Mathf.Cos(Vector3.Dot(localVelocity.normalized, Vector3.right)),
Mathf.Cos(Vector3.Dot(localVelocity.normalized, Vector3.up)),
Mathf.Cos(Vector3.Dot(localVelocity.normalized, Vector3.forward)))
);
I guess I implemented it properly because it's not going berserk as in my first trial, but honestly I can't really feel the difference. In what this formula is supposed to help in, get more control ?
EDIT: I do see some changes actually, previously I did lose some max. velocity and now it is back as usual !
thanks !
@BeRo
I can only wish you good luck, my searches on the topic haven't really brought anything that might be of interest to you
thank you !