from typing import Counter


def multi_mode(arr):
    """
    Calculates the mode of a list of numbers as an array of tuples
    containing the most frequently occurring elements. Each tuple
    contains the item itself in the first slot, and the number of times
    it occurs in the second. If there are multiple modes, returns all.

    Usage: mode([1, 1, 2, 2, 3]) # [(1, 2), (2, 2)]
    """

    # Count items
    counter = Counter(arr)

    # Get number of times most frequently occurring item appears
    freq = counter.most_common(1)[0][1]

    # Return list of tuples containing most frequently occurring elements
    return [(key, val) for key, val in counter.items() if val == freq]