As an aside, calibre's internal mtp implementation is (a Python binding around) the existing libmtp project. Calibre is quite good about using existing libraries where possible. I just wish it had the same attitude to existing user interface elements, because its UI is quite thoroughly confounding, though thankfully one can just use its command line for conversion jobs.
(And where oh where did you find Alastair Reynolds's _Troika_ in ebook form? Nearly all his recent novellas are available only in murderously expensive hardcover form as far as I can see: yes, he's good, but not worth nearly a pound a page.)