Na véspera, corte o bacalhau e deixe de molho na água para tirar o sal, trocando de água pelo menos 2 vezes.
Cozinhe as batatas, descasque-as e reserve.
Cozinhe o bacalhau, tire os espinhos e desfie. Leve uma panela ao fogo com 3 colheres de óleo e frite: 3 dentes de alho bem picadinhos, uma cebola picada, o cheiro verde e pimenta-do-reino a gosto.
Acrescente o bacalhau já desfiado.
Deixe refogar um pouco e corrija o sal. Reserve.
Lave e corte o espinafre e escalde em água fervente. Reserve.
Leve outra panela ao fogo, fritando em 2 colheres de óleo: 3 dentes alho bem picadinhos, 1 cebola picadinha, o tablete de legumes e o leite e pimenta do reino à gosto.
Quando levantar fervura, acrescente o amido de milho dissolvido em um pouquinho de água e ferva até engrossar e cozinhar um pouco. Desligue o fogo e acrescente o creme de leite. Mexa até incorporar.
Pegue um refratário e coloque uma camada do creme (mais ou menos a metade), acrescente as batatas cozidas cortadas em rodelas finas, o bacalhau reservado, uma camada do espinafre, uma camada de cebola cortada em rodelas finas, uma camada de tomate cortado em rodelas finas, o restante do creme e, por último, uma camada de mussarela fatiada. Leve ao forno para gratinar.