#JavaScript (ES6), 97 bytes
Takes input as a flattened array.
f=(a,s=p=136,m,d)=>a.map((v,n)=>v<m|(n%4-p%4)**2+(n-p)**2/9>d||(q=n,m=v))|m?f(a,s-m,a[p=q]=0,4):s
Try it online!
###Commented
f = ( // f= recursive function taking:
a, // - a[] = flattened input array
s = // - s = sum of cheese piles, initialized to 1 + 2 + .. + 16 = 136
p = 136, // - p = current position of the mouse, initially outside the board
m, // - m = maximum pile, initially undefined
d // - d = distance threshold, initially undefined
) => //
a.map((v, n) => // for each pile v at position n in a[]:
v < m | // unless this pile is not better than the current maximum
(n % 4 - p % 4) ** 2 // or (n % 4 - p % 4)²
+ (n - p) ** 2 / 9 // + (n - p)² / 9
> d || // is greater than the distance threshold:
(q = n, m = v) // update m to v and q to n
) // end of map()
| m ? // if we've found a new pile to eat:
f( // do a recursive call:
a, // pass a[] unchanged
s - m, // update s by subtracting the pile we've just eaten
a[p = q] = 0, // clear a[q], update p to q and set m = 0
4 // use d = 4 for all next iterations
) // end of recursive call
: // else:
s // stop recursion and return s