Landscape material blending: struggling to mask away unwanted parts in a material

I have set up a material to the best of my understanding on how it should work, if I want something like rocks with an alpha mask, and overlay them on the rest of the landscape without affecting what’s between the rocks.

A video to demonstrate the issue:

I’m using a “No Weight-Blend” layer for the rocks.
I’m using ‘Height Blend’ in the Layer Blend node for the rocks.

This leads to the diffuse being overlaid the terrain, including the dark parts which should be masked away. I’m using a height map as the mask.

If I’m using ‘Weight Blend’ instead of ‘Height Blend’ in the Layer Blend, I don’t get the dark parts, but it cancels out other maps (roughness, normals etc) in between the rocks, as if it’s overlaying its own roughness/normals over those parts, which is also problematic.

The Material layout:

Let me know if anyone has any suggestions on how to fix this!