And most modern devices randomize MAC addresses ("Wi-Fi addresses" in Apple-ese, for probably obvious reasons) between networks, and even between broadcasts/connections to the same network.
In Linux changing the MAC address can be done simply on the command line, so I'd probably just write this functionality into a bash script that I'd call before ifup.
macOS rotates MAC addresses between networks by default, and between connections to the same network unless it's password-protected. (It's under System Settings -> "Details..." or three-dot menu by a network -> "Private Wi-Fi address.")
Windows also randomizes by default as long as your network controller supports it.
It sounds like Linux requires some textual configuration that depends on your distro.