Multi-level modelling allows modelling at more than two meta-levels at once. The document discusses how multi-level modelling can be used for model-driven engineering. It presents the basics of multi-level modelling using concepts like clabjects, potency, levels and the orthogonal classification architecture. Examples are provided where multi-level modelling has advantages over two-level modelling, such as for modelling product types and instances, and domain-specific process modelling languages. Tool support for multi-level modelling is discussed, as well as how multi-level models can be managed through constraints, transformations and code generation.