By contrast, if someone claims to have mined a particular block in a system using proof of work, we are automatically guaranteed that we will have universal agreement that the block is valid. If someone does not do the appropriate proof of work, we are automatically guaranteed that we will have universal agreement that the block is invalid. I can easily ensure my node honors all valid blocks and dishonors all invalid blocks, even in the fact of an arbitrary number of hostile adversaries who all lie to me. How can we do that with MAC address validity?
It's surprising how commonly I see algorithms that claim to be able to replace proof of work that begin by assuming we can do things that are in fact precisely the things that proof of work enable us to do.
If we choose option one, the MAC address adds no security at all. If we choose option 2, we risk breaking the consensus algorithm as nodes disagree on which MAC addresses are valid and which aren't and so disagree on which registrations are allowed to vote and which aren't. We would need some protocol to ensure universal agreement by the mutually distrustful participants on which MAC addresses are valid, which we do not have. And if we had such a protocol, why not just use it to agree on which transactions are valid?
Suppose you're a node and someone just introduced a registration with particular MAC address. What process should every node in the network go through to determine whether that MAC address should be allowed or not such that they will all get the same answer, will not shut out legitimate users, and will detect spoofing? How can anyone on the outside tell whether I have one or a hundred machines behind my home router? And we're relying on every participant being able to do so and somehow getting the same answer. It's utterly, comically ridiculous.