However, I think the terrain really needs triplanar texture mapping, the stretched texture on the slopes if not up to date.
Yes you are right. This is one thing I should work on. Never read about theory behind it, but I'm sure a google search give me dozen of papers about this.
Basically you are only interested in the z-component of the normal vector, aren't you? If it's 1 your rotation.tilt is 0, near 1 the slope is near 90° in incline. Thus you should be able to skip the whole (vec_to_)angle stuff and work with the normal vector directly.
I really suck at vector mathematics. but I think vec_to_angle is neccesary, because you need the exact euler angle. The normal vector gives you only the direction.