Making sure a Decal doesn't fade off/X dimension is long enough

I have created paint splat decals that will splat onto objects at any angle. They are projected at the angle of entry giving a stretched effect to them, this is great.
The only issue is that the ‘X’ dimensions of its size causes issues. If it is too low then the angled decals fade out, but if its too long , the decal will be projected on and through an object. Both of these effects are undesirable.

Things that i think could work:

  • Some form of algorithm that makes sure all pixels are projected.
  • Various methods that involve changing the origin of the projection.
  • setting the decal X dimension based on the angle somehow (tried this, couldn’t figure out the maths but it wouldn’t solve the issue, especially at very shallow angles).
  • Somehow using a decal method that only projects onto a single face.

All help is appreciated, i will post screenshots of my code/blueprints if need be.

from the normal then rotationfromxvector node for the decal spawn rotation?