Your problem is that
mk_multisig_script returns a hex encoded string and
scriptaddr expects binary. Fix:
msigaddr = scriptaddr(mscript.decode('hex'))
Many thanks. That solved that one. Do you happen to know the answer to my previous question too? (i.e. I'm still getting "Invalid Signature" after signing with the two private keys).