Le funzioni mkcha e mkspec non le ho toccate per niente ho aumentato gli array così
int px[500][500], npx[2], olpx[2], stpx[2], cha[1000][1000], maxi = 10000, maxl = 100000, tm[1000][1000], con[1000][1000];
int blas[1000][500][500], blal[1000][100000][3], blap[1000][2], blad[1000][2], blaa[1000];
int gras[1000][500][500], gral[1000][100000][3], grap[1000][2], grad[1000][2], graa[1000];
int whis[1000][500][500], whil[1000][100000][3], whip[1000][2], whid[1000][2], whia[1000];
int muls[1000][500][500], mull[1000][100000][3], mulp[1000][2], muld[1000][2], mula[1000];
int tss[8][500][500], tssl[16][100000][3], tssp[1000][2], tssd[1000][2], tssa[1000], ssl[1000][1000];
vedete quegli array di 100000 poi ho modificato le funzioni che li usano ed è tutto normale fino a qui.