MixColumns
MixColumns is the AES step that mixes each column of the state through a fixed linear map over GF(28).
Each column of the AES state is treated as a polynomial over GF(28) and multiplied by a fixed polynomial modulo x4 + 1. The map has branch number 5, meaning that a single changed input byte forces at least four changed output bytes. It is an MDS construction, and it delivers a lot of diffusion in one step.
The step only touches one column at a time, so ShiftRows is what connects the columns. It is a clear division of labour: one step for local mixing and one for global connections. Implementations that look the step up in tables also leak through cache timing, so getting the mathematics right is not the whole job.