Pontius
I can help you with the, "Thought he smoked cannabis" one. There is a law called the Criminal Attempts Act 1981, which makes it an offence to do something that is "more than merely preparatory" to the commission of an offence.
This is so, even if the commission is itself impossible, and even if the acts carried out do not even amount to an offence on the particular facts.
So, for example, if a person attempts to import prohibited drugs into the UK, he is guilty of an offence even if the 'drugs' were, in fact, sugar. Similarly, if a person smokes a substance, believing it to be cannabis, but, in fact, the substance is tobacco, he will be guilty of an offence.
Of course, being stupid isn't a crime, but it helps, if you want to get ensnared by this particular piece of legislation.