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.