The software package McStas is a tool for writing Monte Carlo ray-tracing simulations of neutron scattering instruments with very high complexity and precision. The simulations can compute all aspects of the performance of instruments and can thus be usedto optimize the use of existing equipment as well as the design of new instrumentation. McStas is based on a unique design where an automatic compilation process translates high-level textual instrument descriptions into efficient ANSI C code. Thisdesign makes it simple to set up typical simulations and also give essentially unlimited freedom to handle more unusual needs. This report constitutes the reference manual for McStas, and contains full documentation for all ascpects of the program. Itcovers the various ways to compile and run simulations; a description of the metalanguage used to define simulations; a full description of all algorithms used to calculate the effects of the various optical components in instruments; and some examplesimulations performed with the program.The software package McStas is a tool for writing Monte Carlo ray-tracing simulations of neutron scattering instruments with very high complexity and precision. The simulations can compute all aspects of the performance of instruments and can thus be used to optimize the use of existing equipment as well as the design of new instrumentation. McStas is based on a unique design where an automatic compilation process translates high-level textual instrument descriptions into efficient ANSI C code. This design makes it simple to set up typical simulations and also give essentially unlimited freedom to handle more unusual needs. This report constitutes the reference manual for McStas, and contains full documentation for all ascpects of the program. It covers the various ways to compile and run simulations; a description of the metalanguage used to define simulations; a full description of all algorithms used to calculate the effects of the various optical components in instruments; and some example simulations performed with the program