I found a bug...
When you for example subtract a white texture from another you create values below zero, which just render as black like they should. But when you pass on this seamingly black texture, the negative values get passed on. If you then pass it in for example lighting, the original heightmap is still rendered. (Basically you need to clamp values before passing them on)
Another suggestion I have is when you have for example blend modes, you should describe what a mode does.
I fixed it by simply putting the list of Modes in the description...