Los métodos de ordenamiento tradicionales solo sirven para estructuras de datos unidimensionales. Para estructuras de más de una dimensión primero tienes que establecer el criterio de cuándo consideras que la estructura está ordenada. Por ejemplo en el caso de un arreglo bidimensional, un criterio sería que está ordenado cuando el último valor de una fila es menor al primer valor de la fila siguiente:
01 02 03
04 05 06
07 08 09
pero también podrías decir que el arreglo está ordenado cuando el último valor de la columna es menor al primer valor de la columa siguiente:
01 04 07
02 05 08
03 06 09
tu caso es el de tres dimensiones, tendrás establecer dos criterios, uno que le corresponde a cada plano y otro que le corresponde a planos entre sí, por ejemplo podrías decir que un plano está ordenado cuando el último valor de una fila es menor al primer valor de la fila siguiente y el cubo está ordenado cuando el último valor de un plano es menor al primer valor del plano siguiente:
Plano 1:
01 02 03
04 05 06
07 08 09
Plano 2:
10 11 12
13 14 15
16 17 18
Plano 3:
19 20 21
22 23 24
25 26 27
Ahora bien, si esos son los criterios a adoptar entonces la manera más facil de lograr la ordenación es crear un arreglo unidimensional con tanto elementos como tenga el cubo, copiar todos los elementos en el orden en el que estén, aplicar un método de ordenación tradicional sobre este arreglo unidimensional y luego copiar todo de regreso al cubo.
Por otro lado, siendo un arreglo multidimensional, hay que considerar qué dimensión tiene precedencia respecto a los demás. En el ejemplo que usé considero que el eje x tiene precedencia sobre el eje y, que a su vez tiene precedencia sobre el eje z.