I'm creating a map with some layers, each one has a label, the problem is that, Mapserver is displaying the labels of bottom layers, so it is mixing all the label.
Is it possible to hide label that is under others layers?
Have a look at the PRIORITY option for LABELS - http://mapserver.org/mapfile/label.html
It is unclear how you are generating your map, and what client you are using to view images, but it often makes sense to store labels as separate layers in the MAP file, and switch them on and off through the client application (OpenLayers, WMS client etc.)