MLAPM simulates structure formation from collisionless matter. The code, written in C, is purely grid-based and uses a recursively refined Cartesian grid to solve Poisson's equation for the potential, rather than obtaining the potential from a Green's function. Refinements can have arbitrary shapes and in practice closely follow the complex morphology of the density field that evolves. The timestep shortens by a factor two with each successive refinement. It is argued that an appropriate choice of softening length is of great importance and that the softening should be at all points an appropriate multiple of the local inter-particle separation. Unlike tree and P3M codes, multigrid codes automatically satisfy this requirement.