OP_HASH160 and number of bytes of public key When creating a raw transaction, why after the OP_HASH160 the number of bytes of the hashed public key should be included if it's always 20 bytes (that's what RIPEMD160 throws)?

Does this happen with every OP_CODE value in scripts?

Please explain. Thanks.
Are you refering to the pay-to-pubkey-hash script (https://en.bitcoin.it/wiki/Script#Standard_Transaction_to_Bitcoin_address_.28pay-to-pubkey-hash.29)?

In that case it is the hash of the public key, which is 20 bytes. It is NOT the public key itself. 

Every op-code correponds to a byte-value in the raw transaction script. All operations are preformed on a stack onto which values can be pushed. The public-key-hash must therefore first be pushed onto the stack, before it can be compared to another value on the stack. 

To first push the public-key-hash to the stack we prepend "the number of bytes" which is 20, because this value is itself just an op-code that pushes the next 20 bytes of data to the stack. (See https://en.bitcoin.it/wiki/Script#Constants)

This makes the scripting language more flexible.