Dessalgue o bacalhau deixando-o de molho por aproximadamente 12 horas.
Troque a água a cada 3 horas. Cozinhe o bacalhau, corte-o em lascas e reserve.
Descasque as batatas e cozinhe-as na água do cozimento do bacalhau para que elas fiquem mais saborosas.
Depois de cozidas, passe-as pelo espremedor e faça um purê com o leite e a margarina.
Forre o fundo de uma assadeira com o pure e reserve.
Aqueça o azeite extra virgem (mais ou menos 1 copo) e doure a cebola. Acrescente as azeitonas e o bacalhau reservado e deixe apurar por uns 10 minutos em fogo brando.
Coloque esse bacalhau por cima do pure de batatas.
Em um recipiente misture bem o creme de leite como o leite de coco e despeje essa mistura sobre o bacalhau. Polvilhe o parmesão ralado e leve ao forno pré aquecido por 30 minutos (fogo baixo).
Sirva imediatamente com arroz branco.