Looks good but you probably don’t need to read from the mask and alpha for both the diffuse texture and lighting calc. You should just be able to multiply the bottom part of the shader by the dot product from the texture of the top function to avoid doubling up the opacity.