Ok. The next hint:
You have to pre-hook ZO_MapPin.UpdateSize(self)
Lua Code:
function ZO_MapPin:UpdateSize()
-- here your pre-hook saved the last use pin: lastPin = self (lastPin is declared outside the hook function, like orgSize
local singlePinData = ZO_MapPin.PIN_DATA[self.m_PinType]
if singlePinData ~= nil then
-- There are two passes on setting the size...it could also be set when SetLocation is called because that takes a pin radius.
local control = self:GetControl()
local hasNonZeroRadius = self.radius and self.radius > 0
local baseSize = singlePinData.size or CONSTANTS.DEFAULT_PIN_SIZE -- here the altered "size" uses lastPin to return a value based on lastPin:GetUnitTag().
...