This is just simple xor encryption using a 16-byte key generated with MD5. Completely insecure. The entire point of a one-time pad is that you NEVER REUSE A KEY BYTE. Your scheme reuses the same key byte once for each 16 bytes of plaintext.
I just had a look at Crypt::OTP. Gack. Let's just say that the author was cryptographically unsophisticated.