WE HAVE GOT THIS!

All works perfectly.

Also, for others' reference, make sure you don't directly set the decal particle's flags variable.

You need to OR stuff onto it like this: p->flags |= TRANSLUCENT;
Rather than like this: p->flags = TRANSLUCENT;

Just spent half an hour wondering why my decals were duplicating themselves in the center of the map, and that was why.