We present a distributed self-reconfiguring robot system with unit-compressible modules called the Crystal robot. A new design for the Crystal is presented that decouples; the x axis and y axis actuation, has on-board sensing and has neighbor-to-neighbor communication. We also describe a suite of distributed control algorithms for this type of robot and associated experiments for each algorithm. Several of the algorithms presented are instantiations of generic distributed algorithms for self-reconfiguring robots. Specifically, we present an algorithm for distributed goal recognition, two new distributed locomotion algorithms designed for unit-compressible actuation and a new generic-division algorithm. We also present the integration of a locomotion algorithm with distributed goal recognition, allowing the robot to reconfigure and recognize the achievement of its goal, all without the use of a central controller. For all of these algorithms, we describe the implementation, sketch correctness analysis and present experimental data. Our experiments empirically verify the usefulness of our distributed algorithms on a self-reconfiguring system.