Для проекции Меркатора Базовая карта использует начало системы координат сетки в нижнем левом углу вычисляемых значений. С вашим кодом значения могут быть вычислены как
M(0, 0, inverse=True)
# output: (-180.0, -89.98999999999992)
Если вы вычисляете координаты проекции для (long = 0, lat = 0) и присваиваете значения (x0, y0). Вы получаете сдвиги в координатах (x0, y0), которые отличают его проекционные координаты от стандартных значений (0,0 в центре карты).
lon0, lat0 = 0, 0
x0, y0 = M(lon0, lat0)
# x0=20015077.371242613, y0=59546805.8807
Для контрольной точки при (long = 3.383789, lat = 48.920575),
lon1 = 3.383789
lat1 = 48.920575
x1, y1 = M(lon1, lat1)
с примененными сдвигами координат, результат
print(x1-x0, y1-y0)
# output: (376259.9924608879, 6254386.049398325)
при сравнении со значениями pyproj
p0 = Proj(proj='merc', ellps='WGS84', errcheck = True)
print(p0(lon1, lat1))
# output (376681.6684318804, 6229168.979819128)
они вполне согласны, но не близки. При построении карт небольшого масштаба вы не можете видеть расхождения на картах.