I'm making/testing code right now. It makes all the paintcans (not FX) use the Rainbow particles/explosion and deletes the other effects. It still has the projectile and weaponimage for both, if I managed to delete them you could save 128 or so datablocks. (If you had a full paint set)
You could always disable a few add-ons. Try not to download stupid vehicles which include a Support_ file which creates a lot of datablocks already existing in the Jeep, but under new names, or weapons which use exactly the same effects as the Gun but rename them. (For Dual Guns I used "copied" datablocks i.e. forcing exec of Gun, removing it from menu if add-on is disabled, and using most of those datablocks)
EDIT: Aargh, it crashes the game when you paint stuff. (Projectile hit not when you get it out) Abnormal Program termination...schedule(1000,0,savetheworld);
function savetheworld()
{
for(%i=0;%i<64;%i++)
{
%a = nameToId("color" @ %i @ "sprayCanImage");
if(isObject(%a))
{
%a.delete();
if(getWord(getColorIDTable(%i),3) < 1){%s = "base/data/shapes/transspraycan.dts";}else{%s = "base/data/shapes/spraycan.dts";}
datablock ShapeBaseImageData(a : rainbowSprayCanImage)
{
colorShiftColor = getColorIDTable(%i);
projectile = "color" @ %i @ "paintProjectile";
shapefile = %s;
colorID = %i;
};
a.setName("color" @ %i @ "sprayCanImage");
nameToId("color" @ %i @ "paintEmitter").delete();
nameToId("color" @ %i @ "paintParticle").delete();
nameToId("color" @ %i @ "paintExplosion").delete();
}
}
}