Change in probability of collision when removing digits from MD5 hexadecimal hash values
First things first: there is nothing magical in hexadecimal. The output of MD5 is, nominally, a sequence of 128 bits, or, if you prefer, 16 bytes (each being able to get any value between 0 and 255). Hexadecimal is just a trick to represent a single byte as two characters in a limited range (digits, and letters from 'a' to 'f'). If you can have 30 characters then you can probably use more than the hexadecimal digits. For instance, with Base64 encoding, you can unambiguously represent any MD5 output (16 bytes) into 24 characters chosen in a list consisting of digits, uppercase letters, lowercase letters, '+', '/' and '=' (the '=' sign appears only at the end, and your 24 characters will always end with a pair of '=' signs, which you can altogether omit; hence, make that 22 characters).

To answer your initial question, assuming that MD5 behaves "randomly" (which is kind of true as long as nobody is actively trying to produce collisions), then keeping $n$ hexadecimal characters means keeping $4n$ MD5 output bits, and collisions are expected to appear around $2^{2n}$ keys. With $n = 30$, that's $2^{60}$, also known as "approximately a billion billions", which is still kind of huge. Still, you'd better use a shorter encoding such as Base64, which avoids the issue altogether.