Is it possible to calculate a public key from the message hash and signature? Is it possible to calculate a public key from the message hash and signature?
It is possible to create a public key from the signature. It will be equivalent to the key used to generate the signature but not necessarily identical.

You can find an example implementation here.