In short: Where does the hashing of your password occur so it doesn't get stolen and can't get "faked"?
The 12 words are not a password. They are the source of your private keys. Anyone with the 12-word phrase will have the keys that are generated by that phrase. That is why you must keep the phrase secret.
The password (and not the 12-word phrase) that you enter into a wallet is used to encrypt and decrypt the data stored by the wallet, which includes your 12-word phrase. (or just the "seed" derived from it).
If I am understanding correctly:
You send to the nodes of the blockchain a signature that is the public key, they know that it is you because the only way you got that public key is by hashing the 12 word seed related to that key. But how do they ensure that you actually hashed the 12 words and not just look in the public blockchain for a random public key, and just send that, assuming you replicate the answer your machine produces when you log in and hash the 12 words but changing the result of that hash for a fake one, once again I am not doubting that there is a logical explanation for why this is not possible, I am genuinely curious about how they manage to fix this problem.
To spend bitcoins at an address, your transaction must provide a valid signature.
The signature contains the public key that the address is generated from and is it created using the private key associated with that public key. It is not possible to fake a public key because it won't match the address. It is not possible to fake a private key because it won't match the public key. An address is a hash of a public key that is associated with a private key. A private key is generated using the seed phrase (the 12-word phrase). It is not possible to obtain a public key from an address. It is not possible to obtain a private key from a public key.
-My computer ask metamask for 12 words at random
-My computer then proceeds to apply some math to the 12 words thus hashing those 12 words into a public key and a private key
-Then My computer goes to the blockchain and identifies itself whit this public key, it doesn't identify itself whit the private key, because in the blockchain everything is public so it wouldn't make sense to show it in public.
-Next time I log in, My computer makes the math to the 12 words I feed it, and comes whit the same public key to identify itself in the blockchain
A wallet only "goes to the blockchain" when publishing or searching for transactions. A block chain only contains transactions. There is no identification process. The 12-word phrase is your identity and you prove it by encrypting information with your private keys (creating a "signature"), and others verify it by decrypting the signature with your public keys.