Height changer new style

This is the old heightchanger but with only a little code cleanup. Comments inserted and javadoc added. I think, sasier than this is not possible using such a recursive function.
This is a relatively long method with a high complexity (I see an `if` in an `if` in a `for` in a `for`). Can this be improved in any way?