2002 Elsevier Science B.V. All rights reserved. MACRO was an experiment that ran in the Laboratori Nazionali del Gran Sasso from 1988 to 2000. Its principal goal was to observe magnetic monopoles or set significantly lower experimental flux limits than had been previously available in the velocity range from about = 10-4 to unity. In addition it made a variety of other observations. Examples are: setting flux limits on other so far unobserved particles such as nuclearites and lightly ionizing particles, searching for WIMP annihilations in the Earth and the Sun and for neutrino bursts from stellar collapses in or near our Galaxy, and making measurements relevant to high energy muon and neutrino astronomy and of the flux of up-going muons as a function of nadir angle showing evidence for neutrino oscillations. The apparatus consisted of three principal types of detectors: liquid scintillator counters, limited streamer tubes, and nuclear track etch detectors. In addition, over part of its area it contained a transition radiation detector. The general design philosophy emphasized redundancy and complementarity. This paper describes the technical aspects of the complete MACRO detector, its operational performance, and the techniques used to calibrate it and verify its proper operation. It supplements a previously published paper which described the first portion of the detector that was built and operated.