MAP_INFO te devuelve la información del mapa, del gráfico, no del proceso. Por eso siempre te devuelve el mismo valor, porque no influyen las variables de ningún proceso.
Sin embargo, collision si que tiene en cuenta el tamaño, la rotación, etc del proceso, porque la colisión va asociada al proceso, mientras que MAP_INFO lo está a la imagen que has cargado.
Si quieres saber qué tamaño tiene un gráfico de un proceso, depende de si estás usando SIZE o SIZE_X y SIZE_Y
tamaño_x = (MAP_INFO(file, graph, G_WIDTH) * size) / 100;
tamaño_y = (MAP_INFO(file, graph, G_HEIGHT) * size) / 100;
o bien
tamaño_x = (MAP_INFO(file, graph, G_WIDTH) * size_x) / 100;
tamaño_y = (MAP_INFO(file, graph, G_HEIGHT) * size_y) / 100;
ya que tanto size, como size_x y size_y indican porcentajes (y son independientes unos de otros, ojo con eso). 100% debería quedarte el mismo tamaño, o sea, que debería multiplicarse por 1 = 100/100
200% debería quedarte el doble, o sea, que debería multiplicarse por 2 = 200/100.
50% debería quedarte a la mitad, o sea, que debería multiplicarse por 0'5 = 50/100 = 1/2.
Es una simple regla de proporcionalidad o "regla de tres", de las que se estudiaban en 6º o 7º
Eso sí, asegurate de realizar las multiplicaciones antes que las divisiones. Estamos usando enteros y en las divisiones descartamos los decimales, perdiendo precisión en el camino.