News update:
Das Phänomen komischer Bildanzeigen hab ich in meiner Adaption des Scriptes gelöst.

Code (Aus dem Sourcecode, den du mal veröffentlicht hast: ):
 
bool onDrawPicture(RPG::Picture* picture)
{
 ( ... ) 
 
        char* filename = picture->filename;
        std::string type;
        int i = -1;
        while(filename[++i] != '.'); // <--- Knackpunkt hier 
        int n = ++i + 3;
        for(; i < n; ++i)
            type += filename[i];
        if(!type.compare("add"))
        {
            active[id] = 1;
            blends[id] = new ImageData(picture);
            drawAdditive(id);
            return true;
        }
( ... )
 

Dateinamen enden zumindest bei mir nicht mit ".png" sondern enthalten gar keinen Punkt wenn kein ".add" oder Ähnliches vorhanden ist. Der Screenshot oben kommt zustande wenn bei einem "non-blend"-Picture, ausserhalb des Bereiches des Dateinamens irgendwo ein Punkt gefolgt von gültigen drei Zeichen gefunden wird zB auf Index 15466 bei mir ;-)