In simple terms, mlag allows two core switches to look and act like a single redundant core. It helps to provide redundancy by allowing for one core to be taken offline (planned or unplanned) while maintaining connectivity to downstrean lag'd devices. It helps overcome the loss of connections to a core that would occur if it were stacked instead (firmware updates cause an entire stack to reboot - if your redundancy was via 2 stack members, you'd lose it during an update).