Nutze stock const anstatt new bei deinen SkinData.
Da das ja quasi keine Variable ist, hier wird nichts mehr verändert (während der Laufzeit), das sind ja alles Konstanten 
Deshalb gebe das so an, dann kann der Compiler das besser im Speicher optimieren.
stock const SkinData[MAX_SKIN_DATA][e_SkinData] = {
{2, 1, 0}, {6, 1, 0}, {7, 1, 0}, {15, 1, 0}, {19, 1, 0}, {21, 1, 0}, {22, 1, 0}, {23, 1, 0}, {26, 1, 0}, {29, 1, 0},
{11, 2, 0}, {12, 2, 0}, {13, 2, 0}, {41, 2, 0}, {54, 2, 0}, {55, 2, 0}, {69, 2, 0}, {90, 2, 0}, {93, 2, 0}, {192, 2, 0}
};
Desweiteren brauchst du theoretisch dieses MAX_SKIN_DATA nicht.
Das verwirrt meiner Meinung nach nur irgendwie xD
Schreibe es einfach so:
stock const SkinData[][e_SkinData] = {
{2, 1, 0}, {6, 1, 0}, {7, 1, 0}, {15, 1, 0}, {19, 1, 0}, {21, 1, 0}, {22, 1, 0}, {23, 1, 0}, {26, 1, 0}, {29, 1, 0},
{11, 2, 0}, {12, 2, 0}, {13, 2, 0}, {41, 2, 0}, {54, 2, 0}, {55, 2, 0}, {69, 2, 0}, {90, 2, 0}, {93, 2, 0}, {192, 2, 0}
};
Und wie viele Elemente jetzt im Array sind, kannst du einfach mit:
sizeof(SkinData) abfragen.
Keine Angst, von der Performanz her macht das keinen Unterschied, da das vom Pre-Compiler auch ersetzt wird durch eine konstante Zahl, wie das Makro 