Dato che nel tuo caso una delle 3 dimensioni e' costante (4), puoi scrivere

codice:
  unsigned char **mappa[4];
  int i, j;

  for(j=0; j<4; j++)
  {
    mappa[j] = (unsigned char **)malloc(coordx * sizeof(unsigned char *));

    for(i=0; i<x; i++) 
      mappa[j][i] = (unsigned char *)malloc(coordy * sizeof(unsigned char));
  }
e accedi alla matrice come se l'avessi dimensionata con

codice:
  unsigned char mappa[4][coordx][coordy];